package sicnu.cs.aps.domain.form;

import lombok.*;
import sicnu.cs.aps.common.ResultInfoUtil;
import sicnu.cs.aps.domain.entity.Activity;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 * 活动信息表
 *
 * @author lucker
 * @date 2022/5/29 15:12
 */
@Data
@With
@AllArgsConstructor
@NoArgsConstructor
public class ActivityInfoForm extends Activity {

    /**
     * 前段传递过来的活动开始结束时间
     */
    private ArrayList<Date> activityTime;

    /**
     * 前端传递过来的报名开始结束时间
     */
    private ArrayList<Date> applyTime;

    /**
     * 判断各种时间是否合规，如果合规则返回null，否则返回不合规原因
     *
     * @return String
     */
    @Override
    public String isTimeLegal() {
        if (!this.getActivityTime().get(0).before(this.getActivityTime().get(1))) {
            return "活动开始时间必须早于结束时间";
        }
        if (!this.getApplyTime().get(0).before(this.getApplyTime().get(1))) {
            return "报名开始时间必须早于结束时间";
        }
        if (!this.getApplyTime().get(1).before(this.getActivityTime().get(0))) {
            return "报名结束时间必须早于活动结束时间";
        }
        if (!new Date().before(this.getActivityTime().get(0))) {
            return "活动结束时间不能晚于当前时间";
        }
        return null;
    }
}
